﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//15. 交换两个整数
//15.1 题⽬描述：
//写⼀个函数Swap，可以交换两个整数的内容。注意必须实现成函数完成。
//输⼊2个整数，调⽤⾃定义函数Swap，完成2个整数的交换。
//void Swap(int* pa, int* pb)
//{
//	int tmp = *pa;
//	*pa = *pb;
//	*pb = tmp;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	//输⼊ 
//	scanf("%d %d", &a, &b);
//	//将需要交换值的两个整数变量的地址作为参数传递给函数，进⾏交换 
//	Swap(&a, &b);
//	//输出 
//	printf("%d %d\n", a, b);
//	return 0;
//}

//16. 求两个整数的平均值
//16.1 题⽬描述:
//输⼊2个整数m和n，写⼀个函数average，求2个整数的平均值，考虑整数过⼤溢出的问题。
//int average(int x, int y)
//{
//
//	return x + (y - x) / 2;
//}
//int main()
//{
//	int m, n; 
//	scanf("%d %d", &m, &n);
//	int ave = average(m,n);
//	printf("%d", ave);
//}

//17. 求字符串⻓度
//17.1 题⽬描述：
//写⼀个函数Strlen，可以求字符串⻓度，注：字符串的结束标志是 \0 
//输⼊⼀个字符串（字符串⻓度⼩于等于30，中间不包含空格），使⽤Strlen函数可以求字符串的⻓
//度，并返回。
//strlen(char* pa)
//{
//	int count = 0;
//	while (*(pa++))
//	{
//		count++;
//	}
//	return count;
//}
//int main()
//{
//	char arr[31] = { 0 };
//	/*for (int i = 0; i < 31; i++)
//	{
//		scanf("%s", &arr[i]);
//	}*/
//	scanf("%[^\n]s", arr);//%[^\n]s
//	printf("%d",strlen(arr));
//
//}

//19. 逆序字符串
//19.1 题⽬描述：
//输⼊⼀个字符串，写⼀个函数将⼀个字符串的内容逆序过来。
//测试1：
//输⼊：abcdef
//输出：fedcba
//测试2：
//输⼊：abcdefg
//输出：gfedcba
void swap(char* pa)
{
	//交换
	int num = strlen(pa);
	char* left = pa;
	char* right = pa + num - 1;
	while (left < right)
	{
		char temp = *left;
		*left = *right;
		*right = temp;
		left++;
		right--;
	}

}
int main()
{
	char arr[31] = { 0 };
	scanf("%[^\n]s", arr);
	swap(arr);
	printf("%s\n", arr);
}